#include <iostream>
#include <stdlib.h> 

using namespace std;



bool validarRango(int n){
if(n>0 && n<=1000000000){
		return true;
	}else{
		return false;
	}
}

//retorna -1 si el entero ingresado no es valido
int leerEntero(void)
{
	int integer; // variable entero
	cin >> integer; //leer entero
	if (cin.fail() || ! validarRango (integer))  
	{
		cin.clear(); //mandar notificacion de error y devolver -1
		cout << "ERROR: Dato ingresado no es un numero valido\n" ;

		return -1;
	}
	//en caso exitoso, regresar el valor del numero entero leido.
	return integer;
}

//retorna el valor de c, en caso de que a o b no esten dentro del rango retorna -1
int calcularC(int a, int b){
	int c=-1;
	if(validarRango(a) && validarRango (b)){
		if (a<=b){
			c=2*a-b;
			cout << "El valor de C es: " << c << endl;
		}else{
			c=2*b-a;
			cout << "El valor de C es: " << c << endl;
		}
	}
	
return c;
}


//retorna 1 si es posible calcular c con los datos dados, 0 en caso contrario
int calcularCInputByConsola(){

	int c=0;
	int a = -1;
	int b =-1;

			
	cout << "Ingresa un numero entre 1 y 1000000000" << endl;
   	cout <<  ">> ";
   	   
	a = leerEntero ();
	if(a==-1){
		cout << "El dato ingresado no es valido." << endl;
		return 0;

	}else{
		cout << "Ingresa un numero entre 1 y 1000000000" << endl;
		cout <<  ">> ";
 		b = leerEntero ();
		if (b ==-1){
			cout << "El dato ingresado no es valido." << endl;
			return 0;
			
		}else{
			cout << "c es: " << calcularC (a,b);
			
			return 1;
		}
	}
	
}

int main(){
	int n1 = 0;
	int n2 = 1;
	int n3 = 1000000001;
	int n4 = 1000000000;
	int n5 = 46;
	int n6 = 4;
	int n7 = 67;
	int n8 = 2;

	if(calcularC (n1,n8) == -1){
		cout << "prueba exitosa";

	}else{
		cout << "prueba NO exitosa";
	}

	if(calcularC (n2,n6) != -1){
		cout << "\nprueba exitosa";

	}else{
		cout << "\nprueba NO exitosa";
	}

	if(calcularC (n3,n7) == -1){
		cout << "\nprueba exitosa";

	}else{
		cout << "\nprueba NO exitosa";
	}

	if(calcularC (n4,n5) != -1){
		cout << "\nprueba exitosa";

	}else{
		cout << "\nprueba NO exitosa";
	}

	calcularCInputByConsola();

return 0;	
	
}
